1

@[toc]

前言

本文介绍init、touchDown、touchUp、mSleep

Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。
在默认情况下,变量总是认为是全局的。

I、基础知识

1.1 全局变量

在默认情况下,变量总是认为是全局的。

全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。

当且仅当一个变量不等于nil时,这个变量即存在。

1.2 Lua 数据类型

值可以存储在变量中,作为参数传递或结果返回。
Lua中有8个基本类型分别为:

  • nil
  • boolean
  • number
  • string
  • userdata
  • function
  • thread和table。

1.2.1 具体介绍

  • nil 这个最简单,表示一个无效值(在条件表达式中相当于false)。 nil 还有一个"删除"作用
  • boolean 包含两个值:false和true。
  • number 表示双精度类型的实浮点数
  • string 字符串由一对双引号或单引号来表示
  • function 由 C 或 Lua 编写的函数
  • userdata 表示任意存储在变量中的C数据结构
  • thread 表示执行的独立线路,用于执行协同程序

table Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

我们可以使用type函数测试给定变量或者值的类型:

print(type("Hello world"))      --> string

1.2.2 boolean(布尔)

boolean 类型只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是"假",其他的都为"真":

1.2.3 string(字符串)

字符串由一对双引号或单引号来表示。
也可以用 2 个方括号 "[[]]" 来表示"一块"字符串
字符串连接使用的是 ..
使用 # 来计算字符串的长度,放在字符串前面

1.2.4 table(表)

在 Lua 里表的默认初始索引一般以 1 开始。

local tbl = {"apple", "pear", "orange", "grape"}
for key, val in pairs(tbl) do
    print("Key", key)
end

table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。

II 、基础函数

2.1 init 对脚本进行初始化


init(bid,rotate)
参数解释:

bid(选填)为Bundle ID(ios) 包名(安卓),不知道时为"0";
rotate(必填)为0-竖屏,1-home键在右边,2-home键在左边
eg:init("0 ",0)

2.2 mSleep 脚本睡眠函数


mSleep(t),t单位为毫秒

eg:mSleep(1000)

使用场景:众多点击函数之间必须调用、init后也要调用

                touchDown(6, 389, 1099);    --点击
                mSleep(100);
                touchUp(6, 389, 1099);

2.3 touchDown,touchMove,touchUp对用户点击进行模拟


touchDown(idx, x, y),touchMove(idx, x, y),touchUp(idx, x, y)

idx为多手指点击

2.4 inputText输入字符串函数


inputText(string) 可以加入特殊字符r,n,b, #ENTER#

eg:inputText("第一个脚本运行成功\n") 

III 、 see also

参考


iOS逆向
44 声望15 粉丝